package com.young.weixin.core;

import com.young.interfaces.log.annotation.Log;
import com.young.weixin.model.enums.EWxEventTypeEnum;
import com.young.weixin.model.message.WxBaseMessage;
import com.young.weixin.model.message.WxEventMessage;
import com.young.weixin.util.WxMessageBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;


/**
 * 默认的消息处理器
 *
 * @author wangjy
 * @date 2021/10/07 23:18:40
 */
@Service
public class DefaultWxMessageProcessor implements IWxMessageProcess {

    private static final Logger logger = LoggerFactory.getLogger(DefaultWxMessageProcessor.class);

    /**
     * 判断当前处理器是否处理该消息
     *
     * @param app         公众号应用, 用来区分多个公众号的场景
     * @param userMessage 用户发起的消息或事件
     * @return true表示处理器可以处理该消息, false表示不能处理
     */
    @Override
    public boolean filter(String app, WxBaseMessage userMessage) {
        return true;
    }

    /**
     * 消息处理
     *
     * @param app         公众号应用, 用来区分多个公众号的场景
     * @param userMessage 用户发起的消息或事件
     * @return 回复的消息
     */
    @Log("默认的微信消息处理")
    @Override
    public WxBaseMessage process(String app, WxBaseMessage userMessage) {
        return WxMessageBuilder.buildBackTextMessage("Hi~", userMessage);
    }

    @Override
    public int getOrder() {
        return 1000;
    }
}
